package Package.Example.Suppliers;

import java.util.Random;
import java.util.function.Supplier;

public class SupplierTest {
//    定义一个类(SupplierTest)，在类中提供两个方法
//一个方法是：int getMax(Supplier sup) 用于返回一个int数组中的最大值
//一个方法是主方法，在主方法中调用getMax方法
    public static void SupplierTest(){
        Random random=new Random();
        int[] arr=new int[10];
        for (int i = 0; i < arr.length; i++) {
            arr[i]=random.nextInt();
            System.out.println(arr[i]);
        }
        Integer MaxNum=getMax(()->{
            int max=arr[0];
            for (int i = 1; i < arr.length; i++) {
                // 设定一个标记，若为true，则表示此次循环没有进行交换，也就是待排序列已经有序，排序已经完成。
                boolean flag = true;

                for (int j = 0; j < arr.length - i; j++) {
                    if (arr[j] > arr[j + 1]) {
                        int tmp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = tmp;

                        flag = false;
                    }
                }

                if (flag) {
                    break;
                }
            }
            return arr[arr.length-1];
        });
        System.out.println(MaxNum);

    }
    private static Integer getMax(Supplier<Integer> sup){
        return sup.get();
    }
}
